package com.yotouch.app.stake.model;

import com.yotouch.core.model.EntityModel;

import java.util.Date;

/**
 * 充电枪
 */
public class Charger extends EntityModel {

    /**
     * 桩名称
     * todo 确认是 桩 名称 还是 枪 名称
     */
    String name;

    /**
     * 充电桩
     */
    Stake stake;

    /**
     * 运营商
     */
    Operator operator;

    /**
     * 注册码
     */
    Registration registration; 

    /**
     * 机构
     */
    Organization org;

    /**
     * 商户
     */
    Trade trade;

    /**
     * 站
     */
    Station station;

    /**
     * 车位
     */
    Parking parking;

    /**
     * 资产编码
     */
    String equipId;

    /**
     * 设备型号
     */
    String equipModel;

    /**
     * 资产状态
     */
    String equipStatus;

    /**
     * 资产类别
     */
    String equipCate;

    /**
     * 出厂编号
     */
    String madeNo;

    /**
     * 生产批次
     */
    String batchNo;

    /**
     * 创建者编号
     */
    String creatorNo;

    /**
     * 资产的出厂日期
     */
    Date madeAt;

    /**
     * 资产规定的使用年限
     */
    int lifeTime;

    /**
     * 地址
     */
    String address;

    /**
     * 充电桩电机容量
     */
    Double cap;

    /**
     * 充电桩的计量桩类型 #直流桩02、交流桩 01code_type ='30002000'
     */
    String measureModel;

    /**
     * 充电桩的IC卡槽类型
     */
    String neckModel;

    /**
     * 终端通信的地址码信息
     */
    String terminalAddr;

    /**
     * 规约类型 #暂不编码
     */
    String protocolTypeCode;

    /**
     * 建档人员姓名
     */
    String creatorName;

    /**
     * SIM卡号
     */
    String simCardNo;

    /**
     * 用户名
     */
    String loginUser;

    /**
     * 省编码
     */
    String provinceCode;

    /**
     * 城市编码
     */
    String cityCode;

    /**
     * 区编码
     */
    String districtCode;

    /**
     * 是否可以预约
     */
    Integer isAppointment;

    /**
     * 桩别名
     */
    String chargerPoint;

    /**
     * 硬件识别信息
     */
    String hardwareId;

    /**
     * 注册码
     */
    String registerCode;

    /**
     * 注册时间
     */
    Date registerAt;

    /**
     * 接入状态
     */
    Integer accessStatus;

    /**
     * 桩接入方式 # 0:代表国网桩(通过系统桩注册方式接入)；1:代表国网桩(通过系统内第三方平台接入 如高速系统、运营监控系统)；2:代表第三方桩(通过人工导入方式接入)；3:代表第三方桩(通过第三方平台对接方式)4:代表第三方桩（通过系统桩注册方式接入）
     */
    Integer isThird;

    /**
     * 注册码ID #:D_REGISTE_CODE表的REGISTER_ID 
     */
    String registerId;

    /**
     * 桩的地理位置 #：1高速，2其他
     */
    Integer isGs;

    /**
     * 责任人
     */
    String keeperName;

    /**
     * 枪头编号
     */
    String gunNo;

    /**
     * 充电站是否可用标志 # 1表示可用 0表示不可用(直接导入的方式接入站)
     */
    Integer isUse;

    /**
     * 充电设备接口类型
     * 1：家用插座（模式2） 
     * 2：交流接口插座（模式3，连接方式B ） 
     * 3：交流接口插头（带枪线，模式3，连接方式C） 
     * 4：直流接口枪头（带枪线，模式4）
     * 5：无线充电座
     * 6：其他
     */
    String type;

    /**
     * 是否可以预约
     */
    Integer isYy;

    /**
     * TCU厂商编码 #，1000：普瑞特，1001：三优
     */
    Integer tcuManuCode;

    /**
     * 桩支持的交易方式 #以逗号分隔
     */
    String tradeTypes;

    /**
     * 充电接口标准 #: 01 国标、02美标、03 欧标 code_type =30029300
     *
     * TODO 确认跟 nationalStandard 是否同一字段，且取值一样
     */
    String interfaceStandard;

    /**
     * 厂商编码
     */
    String operatorCode;

    /**
     * 充电站id
     */
    String stationId;

    /**
     * 站类型 #：01高速、02城市公共、03单位内部、04公交、05其他；code_type=60006001
     */
    String stationType;

    /**
     * 电桩分组 #默认为 default
     */
    String stakeGroup;

    /**
     * 产权单位
     */
    String prOrgName;

    /**
     * 单价
     */
    Integer price;

    /**
     * 主用端口
     */
    Integer masterPort;

    /**
     * 备用端口
     */
    Integer sparePort;

    /**
     * 信号编号
     */
    String signalNo;

    /**
     * 集中器区位码
     */
    String areaCode;

    /**
     * 最大输出电压
     */
    Integer maxOutVolt;

    /**
     * 最小输出电压
     */
    Integer minOutVolt;

    /**
     * 最大输出电流
     */
    Integer maxOutCurrent;

    /**
     * 充电枪编号
     */
    String chargerNo;

    /**
     * 额定电压上限
     */
    Integer voltageUpperLimits;

    /**
     * 额定电压下限
     */
    Integer voltageLowerLimits;

    /**
     * 额定电流
     */
    Integer current;

    /**
     * 额定功率
     */
    Double power;

    /**
     * 授权码
     */
    String authCode;

    /**
     * 国家标准
     * 1:2011  
     * 2:2015
     * TODO 需要确认跟 standard 充电接口标准 是否是同一个字段（standard 取值 01，04）
     */
    Integer nationalStandard;

    /**
     * 充电设备接口状态
     * 0：离网  
     * 1：空闲  
     * 2：占用（未充电）  
     * 3：占用（充电中）  
     * 4：占用（预约锁定）  
     * 255：故障
     */
    Integer chargerStatus;

    /**
     * 车位状态
     * 0：未知  
     * 10：空闲  
     * 50：占用
     */
    Integer parkingStatus;

    /**
     * 地锁状态 
     * 0：未知  
     * 10：已解锁  
     * 50：已上锁
     */
    Integer lockStatus;

    /**
     * 二维码,国网充电卡,账户余额
     */
    String payInfo;

    /**
     * 付费模型
     */
    ChargerFeeModel chargerFeeModel;

    /**
     * 服务费模型
     */
    ServiceFeeModel serviceFeeModel;

    /**
     * 付费模型，价格区间
     */
    String chargerFee;

    /**
     * 服务费区间
     */
    String serviceFee;

    /**
     * 公司名称
     */
    String company;

    /**
     * 适用车型
     */
    String matchCars;

    /**
     * 停车区编码
     *
     */
    String parkNo;

    /**
     * 停车区描述
     *
     */
    String parkingDesc ;


    /**
     * 互联互通枪编号
     *
     */
    String outChargerNo ;

    public String getOutChargerNo() {
        return outChargerNo;
    }

    public void setOutChargerNo(String outChargerNo) {
        this.outChargerNo = outChargerNo;
    }

    public String getParkingDesc() {
        return parkingDesc;
    }

    public void setParkingDesc(String parkingDesc) {
        this.parkingDesc = parkingDesc;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Stake getStake() {
        return stake;
    }

    public void setStake(Stake stake) {
        this.stake = stake;
    }

    public Registration getRegistration() {
        return registration;
    }

    public void setRegistration(Registration registration) {
        this.registration = registration;
    }

    public Organization getOrg() {
        return org;
    }

    public void setOrg(Organization org) {
        this.org = org;
    }

    public Trade getTrade() {
        return trade;
    }

    public void setTrade(Trade trade) {
        this.trade = trade;
    }

    public Station getStation() {
        return station;
    }

    public void setStation(Station station) {
        this.station = station;
    }

    public Parking getParking() {
        return parking;
    }

    public void setParking(Parking parking) {
        this.parking = parking;
    }

    public String getEquipId() {
        return equipId;
    }

    public void setEquipId(String equipId) {
        this.equipId = equipId;
    }

    public String getEquipStatus() {
        return equipStatus;
    }

    public void setEquipStatus(String equipStatus) {
        this.equipStatus = equipStatus;
    }

    public String getEquipCate() {
        return equipCate;
    }

    public void setEquipCate(String equipCate) {
        this.equipCate = equipCate;
    }

    public String getMadeNo() {
        return madeNo;
    }

    public void setMadeNo(String madeNo) {
        this.madeNo = madeNo;
    }

    public String getBatchNo() {
        return batchNo;
    }

    public void setBatchNo(String batchNo) {
        this.batchNo = batchNo;
    }

    public String getCreatorNo() {
        return creatorNo;
    }

    public void setCreatorNo(String creatorNo) {
        this.creatorNo = creatorNo;
    }

    public Date getMadeAt() {
        return madeAt;
    }

    public void setMadeAt(Date madeAt) {
        this.madeAt = madeAt;
    }

    public int getLifeTime() {
        return lifeTime;
    }

    public void setLifeTime(int lifeTime) {
        this.lifeTime = lifeTime;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Double getCap() {
        return cap;
    }

    public void setCap(Double cap) {
        this.cap = cap;
    }

    public String getMeasureModel() {
        return measureModel;
    }

    public void setMeasureModel(String measureModel) {
        this.measureModel = measureModel;
    }

    public String getNeckModel() {
        return neckModel;
    }

    public void setNeckModel(String neckModel) {
        this.neckModel = neckModel;
    }

    public String getTerminalAddr() {
        return terminalAddr;
    }

    public void setTerminalAddr(String terminalAddr) {
        this.terminalAddr = terminalAddr;
    }

    public String getProtocolTypeCode() {
        return protocolTypeCode;
    }

    public void setProtocolTypeCode(String protocolTypeCode) {
        this.protocolTypeCode = protocolTypeCode;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public String getSimCardNo() {
        return simCardNo;
    }

    public void setSimCardNo(String simCardNo) {
        this.simCardNo = simCardNo;
    }

    public String getLoginUser() {
        return loginUser;
    }

    public void setLoginUser(String loginUser) {
        this.loginUser = loginUser;
    }

    public String getProvinceCode() {
        return provinceCode;
    }

    public void setProvinceCode(String provinceCode) {
        this.provinceCode = provinceCode;
    }

    public String getCityCode() {
        return cityCode;
    }

    public void setCityCode(String cityCode) {
        this.cityCode = cityCode;
    }

    public String getDistrictCode() {
        return districtCode;
    }

    public void setDistrictCode(String districtCode) {
        this.districtCode = districtCode;
    }

    public Integer getIsAppointment() {
        return isAppointment;
    }

    public void setIsAppointment(Integer isAppointment) {
        this.isAppointment = isAppointment;
    }

    public String getChargerPoint() {
        return chargerPoint;
    }

    public void setChargerPoint(String chargerPoint) {
        this.chargerPoint = chargerPoint;
    }

    public String getHardwareId() {
        return hardwareId;
    }

    public void setHardwareId(String hardwareId) {
        this.hardwareId = hardwareId;
    }

    public String getRegisterCode() {
        return registerCode;
    }

    public void setRegisterCode(String registerCode) {
        this.registerCode = registerCode;
    }

    public Date getRegisterAt() {
        return registerAt;
    }

    public void setRegisterAt(Date registerAt) {
        this.registerAt = registerAt;
    }

    public Integer getAccessStatus() {
        return accessStatus;
    }

    public void setAccessStatus(Integer accessStatus) {
        this.accessStatus = accessStatus;
    }

    public Integer getIsThird() {
        return isThird;
    }

    public void setIsThird(Integer isThird) {
        this.isThird = isThird;
    }

    public String getRegisterId() {
        return registerId;
    }

    public void setRegisterId(String registerId) {
        this.registerId = registerId;
    }

    public Integer getIsGs() {
        return isGs;
    }

    public void setIsGs(Integer isGs) {
        this.isGs = isGs;
    }

    public String getKeeperName() {
        return keeperName;
    }

    public void setKeeperName(String keeperName) {
        this.keeperName = keeperName;
    }

    public String getGunNo() {
        return gunNo;
    }

    public void setGunNo(String gunNo) {
        this.gunNo = gunNo;
    }

    public Integer getIsUse() {
        return isUse;
    }

    public void setIsUse(Integer isUse) {
        this.isUse = isUse;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public Integer getIsYy() {
        return isYy;
    }

    public void setIsYy(Integer isYy) {
        this.isYy = isYy;
    }

    public Integer getTcuManuCode() {
        return tcuManuCode;
    }

    public void setTcuManuCode(Integer tcuManuCode) {
        this.tcuManuCode = tcuManuCode;
    }

    public String getTradeTypes() {
        return tradeTypes;
    }

    public void setTradeTypes(String tradeTypes) {
        this.tradeTypes = tradeTypes;
    }

    public String getInterfaceStandard() {
        return interfaceStandard;
    }

    public void setInterfaceStandard(String interfaceStandard) {
        this.interfaceStandard = interfaceStandard;
    }

    public String getOperatorCode() {
        return operatorCode;
    }

    public void setOperatorCode(String operatorCode) {
        this.operatorCode = operatorCode;
    }

    public String getStationId() {
        return stationId;
    }

    public void setStationId(String stationId) {
        this.stationId = stationId;
    }

    public String getStationType() {
        return stationType;
    }

    public void setStationType(String stationType) {
        this.stationType = stationType;
    }

    public String getStakeGroup() {
        return stakeGroup;
    }

    public void setStakeGroup(String stakeGroup) {
        this.stakeGroup = stakeGroup;
    }

    public String getPrOrgName() {
        return prOrgName;
    }

    public void setPrOrgName(String prOrgName) {
        this.prOrgName = prOrgName;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public Integer getMasterPort() {
        return masterPort;
    }

    public void setMasterPort(Integer masterPort) {
        this.masterPort = masterPort;
    }

    public Integer getSparePort() {
        return sparePort;
    }

    public void setSparePort(Integer sparePort) {
        this.sparePort = sparePort;
    }

    public String getSignalNo() {
        return signalNo;
    }

    public void setSignalNo(String signalNo) {
        this.signalNo = signalNo;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public Integer getMaxOutVolt() {
        return maxOutVolt;
    }

    public void setMaxOutVolt(Integer maxOutVolt) {
        this.maxOutVolt = maxOutVolt;
    }

    public Integer getMinOutVolt() {
        return minOutVolt;
    }

    public void setMinOutVolt(Integer minOutVolt) {
        this.minOutVolt = minOutVolt;
    }

    public Integer getMaxOutCurrent() {
        return maxOutCurrent;
    }

    public void setMaxOutCurrent(Integer maxOutCurrent) {
        this.maxOutCurrent = maxOutCurrent;
    }

    public String getChargerNo() {
        return chargerNo;
    }

    public void setChargerNo(String chargerNo) {
        this.chargerNo = chargerNo;
    }

    public Integer getVoltageUpperLimits() {
        return voltageUpperLimits;
    }

    public void setVoltageUpperLimits(Integer voltageUpperLimits) {
        this.voltageUpperLimits = voltageUpperLimits;
    }

    public Integer getVoltageLowerLimits() {
        return voltageLowerLimits;
    }

    public void setVoltageLowerLimits(Integer voltageLowerLimits) {
        this.voltageLowerLimits = voltageLowerLimits;
    }

    public Integer getCurrent() {
        return current;
    }

    public void setCurrent(Integer current) {
        this.current = current;
    }

    public Double getPower() {
        return power;
    }

    public void setPower(Double power) {
        this.power = power;
    }

    public String getAuthCode() {
        return authCode;
    }

    public void setAuthCode(String authCode) {
        this.authCode = authCode;
    }

    public Integer getNationalStandard() {
        return nationalStandard;
    }

    public void setNationalStandard(Integer nationalStandard) {
        this.nationalStandard = nationalStandard;
    }

    public Integer getChargerStatus() {
        return chargerStatus;
    }

    public void setChargerStatus(Integer chargerStatus) {
        this.chargerStatus = chargerStatus;
    }

    public Integer getParkingStatus() {
        return parkingStatus;
    }

    public void setParkingStatus(Integer parkingStatus) {
        this.parkingStatus = parkingStatus;
    }

    public Integer getLockStatus() {
        return lockStatus;
    }

    public void setLockStatus(Integer lockStatus) {
        this.lockStatus = lockStatus;
    }

    public Operator getOperator() {
        return operator;
    }

    public void setOperator(Operator operator) {
        this.operator = operator;
    }

    public String getPayInfo() {
        return payInfo;
    }

    public void setPayInfo(String payInfo) {
        this.payInfo = payInfo;
    }

    public ChargerFeeModel getChargerFeeModel() {
        return chargerFeeModel;
    }

    public void setChargerFeeModel(ChargerFeeModel chargerFeeModel) {
        this.chargerFeeModel = chargerFeeModel;
    }

    public ServiceFeeModel getServiceFeeModel() {
        return serviceFeeModel;
    }

    public void setServiceFeeModel(ServiceFeeModel serviceFeeModel) {
        this.serviceFeeModel = serviceFeeModel;
    }


    public String getChargerFee() {
        return chargerFee;
    }

    public void setChargerFee(String chargerFee) {
        this.chargerFee = chargerFee;
    }

    public String getServiceFee() {
        return serviceFee;
    }

    public void setServiceFee(String serviceFee) {
        this.serviceFee = serviceFee;
    }

    public String getEquipModel() {
        return equipModel;
    }

    public void setEquipModel(String equipModel) {
        this.equipModel = equipModel;
    }

    public String getMatchCars() {
        return matchCars;
    }

    public void setMatchCars(String matchCars) {
        this.matchCars = matchCars;
    }

    public String getParkNo() {
        return parkNo;
    }

    public void setParkNo(String parkNo) {
        this.parkNo = parkNo;
    }
}
